home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / postgres / postgre4.z / postgre4 / src / lib / H / tmp / oset.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-27  |  2.8 KB  |  201 lines

  1. /*
  2.  * oset.h --
  3.  *    Fixed format ordered set definitions.
  4.  *
  5.  * Note:
  6.  *    Fixed format ordered sets are <EXPLAIN>.
  7.  *    XXX This is a preliminary version.  Work is needed to explain
  8.  *    XXX semantics of the external definitions.  Otherwise, the
  9.  *    XXX functional interface should not change.
  10.  *
  11.  * Identification:
  12.  *    $Header: /private/postgres/src/lib/H/tmp/RCS/oset.h,v 1.5 1990/08/17 08:54:48 cimarron Exp $
  13.  */
  14.  
  15. #ifndef    OSetIncluded        /* Include this only once */
  16. #define OSetIncluded    1
  17.  
  18. #include "tmp/c.h"
  19.  
  20. typedef struct OrderedElemData OrderedElemData;
  21. typedef OrderedElemData* OrderedElem;
  22.  
  23. typedef struct OrderedSetData OrderedSetData;
  24. typedef OrderedSetData* OrderedSet;
  25.  
  26. struct OrderedElemData {
  27.     OrderedElem    next;    /* Next elem or &this->set->dummy    */
  28.     OrderedElem    prev;    /* Previous elem or &this->set->head    */
  29.     OrderedSet    set;    /* Parent set                */
  30. };
  31.  
  32. struct OrderedSetData {
  33.     OrderedElem    head;    /* First elem or &this->dummy        */
  34.     OrderedElem    dummy;    /* (hack) Terminator == NULL        */
  35.     OrderedElem    tail;    /* Last elem or &this->head        */
  36.     Offset        offset;    /* Offset from struct base to elem    */
  37.     /* this could be signed short int! */
  38. };
  39.  
  40. /*
  41.  * OrderedSetInit --
  42.  */
  43. extern
  44. void
  45. OrderedSetInit ARGS((
  46.     OrderedSet    set,
  47.     Offset        offset
  48. ));
  49.  
  50. /*
  51.  * OrderedElemInit --
  52.  */
  53. extern
  54. void
  55. OrderedElemInit ARGS((
  56.     OrderedElem    elem,
  57.     OrderedSet    set
  58. ));
  59.  
  60. /*
  61.  * OrderedSetContains --
  62.  *    True iff ordered set contains given element.
  63.  */
  64. extern
  65. bool
  66. OrderedSetContains ARGS((
  67.     OrderedSet    set,
  68.     OrderedElem    elem
  69. ));
  70.  
  71. /*
  72.  * OrderedSetGetHead --
  73.  */
  74. extern
  75. Pointer
  76. OrderedSetGetHead ARGS((
  77.     OrderedSet    set
  78. ));
  79.  
  80. /*
  81.  * OrderedSetGetTail --
  82.  */
  83. extern
  84. Pointer
  85. OrderedSetGetTail ARGS((
  86.     OrderedSet    set
  87. ));
  88.  
  89. /*
  90.  * OrderedElemGetPredecessor --
  91.  */
  92. extern
  93. Pointer
  94. OrderedElemGetPredecessor ARGS((
  95.     OrderedElem    elem
  96. ));
  97.  
  98. /*
  99.  * OrderedElemGetSuccessor --
  100.  */
  101. extern
  102. Pointer
  103. OrderedElemGetSuccessor ARGS((
  104.     OrderedElem    elem
  105. ));
  106.  
  107. /*
  108.  * OrderedElemPop --
  109.  */
  110. extern
  111. void
  112. OrderedElemPop ARGS((
  113.     OrderedElem    elem
  114. ));
  115.  
  116. /*
  117.  * OrderedElemPushInto --
  118.  */
  119. extern
  120. void
  121. OrderedElemPushInto ARGS((
  122.     OrderedElem    elem,
  123.     OrderedSet    set
  124. ));
  125.  
  126. /*
  127.  * OrderedElemPush --
  128.  */
  129. extern
  130. void
  131. OrderedElemPush ARGS((
  132.     OrderedElem    elem
  133. ));
  134.  
  135. /*
  136.  * OrderedElemPushHead --
  137.  */
  138. extern
  139. void
  140. OrderedElemPushHead ARGS((
  141.     OrderedElem    elem
  142. ));
  143.  
  144. /*
  145.  * OrderedElemPushTail --
  146.  */
  147. extern
  148. void
  149. OrderedElemPushTail ARGS((
  150.     OrderedElem    elem
  151. ));
  152.  
  153. /*
  154.  * OrderedElemPushAfter --
  155.  */
  156. extern
  157. void
  158. OrderedElemPushAfter ARGS((
  159.     OrderedElem    elem,
  160.     OrderedElem    oldElem
  161. ));
  162.  
  163. /*
  164.  * OrderedElemPushBefore --
  165.  */
  166. extern
  167. void
  168. OrderedElemPushBefore ARGS((
  169.     OrderedElem    elem,
  170.     OrderedElem    oldElem
  171. ));
  172.  
  173. /*
  174.  * OrderedSetPop --
  175.  */
  176. extern
  177. Pointer
  178. OrderedSetPop ARGS((
  179.     OrderedSet    set
  180. ));
  181.  
  182. /*
  183.  * OrderedSetPopHead --
  184.  */
  185. extern
  186. Pointer
  187. OrderedSetPopHead ARGS((
  188.     OrderedSet    set
  189. ));
  190.  
  191. /*
  192.  * OrderedSetPopTail --
  193.  */
  194. extern
  195. Pointer
  196. OrderedSetPopTail ARGS((
  197.     OrderedSet    set
  198. ));
  199.  
  200. #endif    /* !defined(OSetIncluded) */
  201.